01
Room数据库入门
认识Room · 为什么选择Room · Room与SQLiteOpenHelper对比 · 核心组件概览
入门概念
02
开发环境搭建
添加Room依赖 · 配置KSP/KAPT · Gradle同步 · 常见问题排查
环境Gradle
03
Entity实体定义
@Entity · @PrimaryKey · @ColumnInfo · @Ignore 字段
注解表结构
04
DAO数据访问对象
@Insert · @Query · @Update · @Delete 操作
DAOCRUD
05
Database数据库类
@Database · 抽象类 · 单例模式 · 版本管理
核心单例
06
基础CRUD实战
创建数据库 · 插入 · 查询全部 · 更新 · 删除
实战基础
07
类型转换器
@TypeConverter · 自定义转换 · Date/List 复杂类型
转换进阶
08
LiveData与Room
LiveData简介 · DAO返回LiveData · 观察数据 · 生命周期感知
LiveData响应式
09
Flow与Room
Kotlin Flow · DAO返回Flow · collect数据流 · 对比LiveData
Flow协程
10
RxJava与Room
RxJava基础 · Flowable/Single · 线程调度 · 背压处理
RxJava响应式
11
数据库迁移
@Migration · 迁移策略 · 测试迁移 · 破坏性迁移
迁移版本
12
预填充数据库
createFromAsset · createFromFile · 预填充时机 · 常见问题
预置数据
13
关系型数据
@ForeignKey · @Relation · 嵌套关系 · 一对多/多对多
关联进阶
14
嵌套对象
@Embedded · 前缀prefix · 嵌套查询 · 扁平化存储
嵌套结构
15
索引与性能优化
@Index · 复合索引 · 查询优化 · EXPLAIN QUERY PLAN
性能索引
16
异步操作
suspend函数 · 协程与Room · withContext · Dispatchers.IO
协程异步
17
事务处理
@Transaction · 事务特性 · 批量操作 · 回滚机制
事务一致性
18
测试Room数据库
本地单元测试 · Instrumented测试 · 测试DAO · 测试Migration
测试质量
19
Repository模式
Repository设计 · 数据源抽象 · 缓存策略 · 单一数据源
架构模式
20
ViewModel与Room
ViewModel简介 · ViewModelProvider · 数据暴露 · 屏幕旋转
ViewModel生命周期
21
Paging 3与Room
PagingSource · @RawQuery · 分页加载 · 无限滚动
分页性能
22
加密数据库
SQLCipher集成 · 加密密钥管理 · 性能影响 · 迁移加密库
安全加密
23
多数据库管理
多Database实例 · 跨库查询 · 数据库别名 · 动态数据库
多库高级
24
Room与DataStore对比
SharedPreferences问题 · DataStore简介 · Room vs DataStore · 场景
对比选型
25
错误处理与日志
异常捕获 · 日志记录 · Stetho调试 · Database Inspector
调试日志
26
架构最佳实践
Clean Architecture · 分层设计 · Hilt/Dagger · 模块化
架构DI
27
复杂查询
@RawQuery · 子查询 · JOIN查询 · 聚合函数
SQL高级
28
数据备份与恢复
导出数据库 · 导入数据库 · 云同步思路 · 版本兼容
备份恢复
29
性能监控
慢查询检测 · 数据库大小监控 · ANR预防 · Profiler
监控优化
30
综合实战项目
笔记App开发 · 需求分析 · 架构设计 · 完整实现 · 发布准备
实战完整